
package com.eva.android.widget;

import com.x52im.rbchat.R;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

/**
 * <p>
 * 多图片查看组件实现类.可以左右滑动切换图片、并提供按钮完成相似功能等.
 * 本类对象的布局文件是widget_multi_images_view.xml<br><br>
 * 本类是在ViewFlipperEx类的基础上进行的进一步封装和完全善.<br>
 * 
 * <b>特别说明：</b>所有要显示的图片组件必须通过调用方法 {@link #getViewFlipper()}以便加入到
 * ViewFlipperEx中于以显示，再无其它途径.形如：
 * <code>
 * <pre>
 * miv.getViewFlipper().addView(new AsynLoadableImageView(CpxxQueryFormActivity.this
 *		,url), new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
 *</pre>
 *</code>
 * </p>
 * 
 * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
 * @version 1.0
 * @see ViewFlipperEx
 */
public class MultiImagesView extends LinearLayout
{
	/** ViewFlipper组件实现对象 */
	protected ViewFlipperEx viewFlipperEx = null;
	/** 向前按钮 */
	protected Button btnPre = null;
	/** 向后按钮 */
	protected Button btnNext = null;
	/** 用于显示图片数量的文本组件 */
	protected TextView viewImagesCountInfo = null;
	
	public MultiImagesView(Context context)
	{
		this(context, null);
	}
	public MultiImagesView(final Context context, AttributeSet attrs)
	{
		super(context, attrs);
		
		LayoutInflater.from(context).inflate(R.layout.widget_multi_images_view,this,true);
		viewFlipperEx = (ViewFlipperEx)this.findViewById(R.id.widget_multi_images_view_vf);
		btnPre = (Button)this.findViewById(R.id.widget_multi_images_view_preBtn);
		btnNext = (Button)this.findViewById(R.id.widget_multi_images_view_nextBtn);
		viewImagesCountInfo = (TextView)this.findViewById(R.id.widget_multi_images_view_pageCountView);
		
		addListeners();
	}
	
	protected void addListeners()
	{
		btnPre.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v)
			{
				viewFlipperEx.goToPre();
			}
		});
		btnNext.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v)
			{
				viewFlipperEx.goToNext();
			}
		});
	}
	
	/**
	 * 返回本组件里的ViewFlipper对象.
	 * 加入本组件里的所有图片组件都必须通此方法加入到ViewFlipperEx中.
	 * 
	 * @return
	 */
	public ViewFlipperEx getViewFlipper()
	{
		return viewFlipperEx;
	}
	
	/**
	 * 设置图片数量信息.
	 * 
	 * @param info
	 * @return
	 */
	public MultiImagesView setImagesCountInfo(String info)
	{
		viewImagesCountInfo.setText(info);
		return this;
	}
}
